package com.example.servicetest;

import com.example.servicetest.aidl.ContadorRemoto;

import android.content.Intent;
import android.os.Binder;
import android.os.IBinder;
import android.os.RemoteException;

public class ServiceBindTest extends ServiceTest implements Contador {

	public class ContadorBinder extends Binder {
		public Contador getInterface() {
			return ServiceBindTest.this;
		}
	}
	@SuppressWarnings("unused")
	private IBinder conexao = new ContadorBinder();
	

	public class ContadorRemotoBinder extends ContadorRemoto.Stub {

		private Contador contador;

		ContadorRemotoBinder(Contador contador) {
			this.contador = contador;
		}

		@Override
		public int get() throws RemoteException {
			return contador.get();
		}

		@Override
		public void reset() throws RemoteException {
			contador.reset();
		}

		@Override
		public void set(int valor) throws RemoteException {
			contador.set(valor);
		}
	}
	private IBinder conexaoRemota = new ContadorRemotoBinder(this);	
	
	
	@Override
	public IBinder onBind(Intent intent) {
		return conexaoRemota;
	}	
	
	
	@Override
	public void reset() {
		synchronized (this) {
			count = 0;
		}
	}

	@Override
	public void set(int valor) {
		synchronized (this) {
			count = valor;
		}
	}

	@Override
	public int get() {
		return count;
	}
}
